package com.heihei.common.tree;

import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Objects;
import java.util.function.Predicate;

/**
 *  根节点判定
 *
 * @version 1.0
 * @since JDK1.8
 * @author duanhengfei
 * @date 2021年02月24日 10:26:24
 */
@NoArgsConstructor
public class RootPredicates {
    private static final Predicate<String> EMPTY_ROOT = StringUtils::isEmpty;
    private static final Predicate<Long> ZERO_ROOT = (v) -> Objects.equals(v, 0L);
    public static boolean isRoot(Serializable key) {
        if (key instanceof String && EMPTY_ROOT.test((String)key)) {
            return true;
        } else {
            return key instanceof Long && ZERO_ROOT.test((Long)key);
        }
    }
}
